package mysql8学习.高级.第18章_主从复制;


/**
 * 2.主从复制的原理
 * Slave（从）会从Master（主）读取 binlog（二进制日志 ）来进行数据同步。
 *
 * 2.1原理剖析
 * 三个线程
 *
 * 实际上主从同步的原理就是基于binlog进行数据同步的。
 * 在主从复制过程中,会基于3个线程来操作，一个主库线程，两个从库线程。
 *
 * 二进制日志转储线程   是一个主库线程。
 *     当从库线程连接的时候，主库可以将二进制日志发送给从库，
 *     当主库读取事件(Event) 的时候，会在Binlog上加锁，读取完成之后，再将锁释放掉。
 * 从库I/O线程       会连接到主库，向主库发送请求更新Binlog。
 *     这时从库的I/O线程就可以读取到主库的二进制日志转储线程发送的Binlog更新部分，
 *     并且拷贝到本地的中继日志(Relay log)。
 * 从库SQL 线程     会读取从库中的中继日志，并且执行日志中的事件，
 *      将从库中的数据与主库保持同步。
 *
 * 注意:
 *     不是所有版本的MySQL都默认开启服务器的二进制日志。
 *     在进行主从同步的时候，我们需要先检查服务器是否已经开启了二进制日志。
 *     除非特殊指定，默认情况下从服务器会执行所有主服务器中保存的事件。
 *     也可以通过配置，使从服务器执行特定的事件。
 *
 * 复制三步骤
 *   步骤1: Master 将写操作记录到二进制日志(binlog) 。
 *        这些记录叫做二进制日志事件(binary log events);
 *   步骤2: Slave 将Master的binary log events拷贝到它的中继日志(relay 1og) ;
 *   步骤3: Slave 重做中继日志中的事件,将改变应用到自己的数据库中。
 *        MySQL复制是异步的且串行化的， 而且重启后从接入点开始复制。
 *
 * 复制的问题
 *  复制的最大问题:延时
 *
 *
 * 2.2复制的基本原则
 * ●每个Slave只有一个Master
 * ●每个Slave只能有一个唯一的服务器ID
 * ●每个Master可以有多个Slave
 */
public class B_主从复制原理 {
}